package windbell.domain.risk;

import edu.fudan.mylang.pf.EntityImplementation;
import java.util.Collection;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
import windbell.domain.risk.BaseHasSimplePy;
import windbell.domain.risk.IHasRiskCheckTemplateItems;
import windbell.domain.risk.RiskCheckTemplateItem;
import windbell.domain.risk.RiskCheckTemplateOwner;
import windbell.domain.risk.RiskCheckTemplateStatus;
import windbell.domain.risk.impl.RiskCheckTemplateImpl;
import windbell.domain.risk.proxy.RiskCheckTemplateProxy;

@EntityImplementation(implementBy = RiskCheckTemplateImpl.class)
public interface RiskCheckTemplate extends BaseHasSimplePy, IHasRiskCheckTemplateItems {
  public abstract RiskCheckTemplateOwner getOwner();
  
  public abstract RiskCheckTemplate setOwner(final RiskCheckTemplateOwner owner);
  
  public abstract String getDescription();
  
  public abstract RiskCheckTemplate setDescription(final String description);
  
  public abstract Collection<RiskCheckTemplateItem> getCheckList();
  
  public abstract RiskCheckTemplate addtoCheckList(final RiskCheckTemplateItem riskCheckTemplateItem);
  
  public abstract RiskCheckTemplate setCheckList(final Iterable<RiskCheckTemplateItem> checkList);
  
  public abstract RiskCheckTemplate removeFromCheckList(final RiskCheckTemplateItem riskCheckTemplateItem);
  
  public abstract RiskCheckTemplate removeAllCheckList();
  
  public abstract Collection<RiskCheckTemplateItem> getRiskCheckTemplateItems();
  
  public abstract RiskCheckTemplateStatus getStatus();
  
  public abstract void start();
  
  public abstract void update(final Procedure1<? super RiskCheckTemplate> updater);
  
  public abstract void delete();
  
  public abstract void addCheckItem(final RiskCheckTemplateItem item);
  
  public abstract Boolean isCreated();
  
  public abstract RiskCheckTemplateProxy toProxy();
}
